import requests
import hashlib


def make_md5(text):
    """
    Md5加密 只能加密字符串
    :param text:  需要加密的内容，必须是个字符串
    :return:
    """
    m = hashlib.md5()  # 创建一个 md5加密工具
    m.update(str(text).encode(encoding='utf-8'))
    res = m.hexdigest()  # 生成加密后的内容
    return res


s = requests.session()
url = 'http://114.132.200.42:3456/user/login'
data = {
    'username': 'python9527',
    'password': make_md5('admin123'),
    'checkcode': '1234'
}
res = s.post(url=url, data=data)
getjson = res.json()
# print(res.status_code)
getuserid = getjson['userId']
getusertoken = getjson['userToken']

# 以json的形式发送请求参数，只需要将参数名data改为json
# get请求无法以json的形式发送

# 创建任务
infourl = 'http://114.132.200.42:3456/task/info'
mydata = {'title': '我的新任务'}
# 头部信息也以字典的形式存储
hd = {'userId': getuserid, 'userToken': getusertoken}
res = s.post(url=infourl, data=mydata, headers=hd)  # headers参数表示头部信息
print(res.json())

# 查询任务
getinfourl = 'http://114.132.200.42:3456/task/info'
mydata = {'status': '1'}
res = s.get(url=getinfourl, params=mydata, headers=hd)  # get请求 params参数表示请求数据
print(res.json())

# 文件上传
imgusl = 'http://114.132.200.42:3456/user/uploal_action'
myimg = [
    ('pic', ('2.jpg', open('2.jpg', 'rb')))
]
res = s.post(url=imgusl,headers=hd,files=myimg)
print(res.json())